Firewall Managerで既存のSecurityGroupルールを監査してみた
こんにちは、つくぼし(tsukuboshi0755)です!
2022/7/27のFirewall Managerを用いたWAFポリシーに引き続き、SecurityGroupポリシーの設定方法を検証する機会があったので、ご紹介します。
Firewall ManagerでのSecurityGroupポリシー設定方法
Firewall Managerの開始
まだFirewall Managerを有効化されてない方は、前回のブログを参照しFirewall Managerを開始しましょう。
SecurityGroupポリシーの作成
以下のように、Firewall Manager管理者のアカウントにて、事前に監査で使用されるSecurityGroupのテンプレートを作成しておきます。
今回は、SSHのインバウンドルールを一つだけ追加しておきます。
(アウトバウンドルールは全開放です)
このインバウンドルールが、Firewall Managerで許可されるSecurityGroupルールとなります。
WAF&Shieldコンソール画面で、左ペインのSecurity policies
にある、Create policy
をクリックします。
AWS services
では、今回のポリシー作成対象であるSecurity groupを選択します。
Security group policy type
では、今回は既存SecurityGroupのルールを監査したいため、Auditing and enforcement of security group rules
を選択します。
Region
では、対象リージョンを選択します。
設定内容に問題がなければ、Next
をクリックします。
Policy Name
では、今回作成するポリシーの名前を入力します。
Policy rule options
ではConfigure custom policy rules
を選択し、監査用SecurityGroupを用いてルールを管理するようにします。
Policy rules
では、Allow only the rules defined in the audit security group
を選択し、監査用SecurityGroup内のルールのみ、Firewall Managerで許可するようにします。
Add security group
を押して、監査用SecurityGroupとしてcm-test-sgを追加します。
Policy action
については、今回はポリシー作成後に有効化するため、一旦デフォルトのままでスキップします。
設定内容に問題がなければ、Next
をクリックします。
Policy scope
では、ポリシーの適用範囲を設定します。
今回は、Include only the specified accounts and organizational units
を選択する事で、特定のアカウントまたはOUに対してポリシーを適用します。
Included organaizational unitsのEdit
をクリックし、適用したいOUを選択し追加します。
Resource Type
はSecurity groupを選択します。
またResources
にてタグごとに適用範囲を設定できますが、今回は使用しないためデフォルトのままにします。
設定内容に問題がなければ、Next
をクリックします。
Policy tags
では、タグを設定します。
今回は設定しないため、Next
をクリックします。
最後に設定内容一覧が表示されます。
設定内容に問題がなければ、Create policy
をクリックする事で、ポリシーが作成されます。
SecurityGroupポリシーの自動修復
Firewall Managerの自動修復を有効化する事で、Firewall Manager非準拠の既存SecurityGroupルールが自動的に削除されるようになります。
既存リソースに対する変更が入るため、作業内容に問題がない事を確認してから実施しましょう。
今回は自動修復の検証用に、Policy scope
で指定したOUに所属するアカウント配下にSecurityGroupを作成し、不要なルールを追加してみます。
Firewall Managerで許可されている8.37.43.43/32
とは別に、8.44.12.64/32
のSSHインバウンドルールを追加します。
初めにFirewall Manager管理者のアカウントにおいて、WAF&Shieldコンソール画面で、左ペインのSecurity policies
にある、作成したポリシーをクリックします。
Overview
を見ると、自動修復がDisabled
になってます。
またAccounts and resources
タブでは、ポリシー対象のアカウントのStatusがNoncompliant
となっており、Firewall Manager非準拠のリソースが存在する事が分かります。
アカウントIDをクリックすると、Firewall Manager非準拠のリソース一覧が表示されます。
今回は、先ほど作成したSecurityGroupが表示されました。
SecurityGroupのIDをクリックすると、Firewall ManagerのSecurityGroupポリシー違反となっているルールが表示されます。
今回は8.44.12.64/32
のSSHインバウンドルールが表示されてます。
自動修復を有効化する事で、ここに表示されているルールが対象のSecurityGroupから削除されます。
Accounts and resources
タブに戻り、Policy details
タブに切り替えた後、Policy action
のEdit
をクリックします。
Identify resources that don't comply with the policy rules, but don't auto remediate
のままの場合、自動修復は無効化され、Firewall Managerポリシー非準拠のリソースの検出のみ実行されます。
Auto remediate any noncompliant resources
を選択する事で、自動修復が有効化され、Firewall Manager非準拠のルールが削除されます。
内容に問題がなければ、Save
をクリックします。
ポリシー対象のアカウントのStatusがCompliant
になるまで、しばらく待機します。
Overview
を見ると、自動修復がEnabled
になってます。
またAccounts and resources
タブを確認すると、ポリシー対象のアカウントのStatusがCompliant
となっており、全てのSecurityGroupがFirewall Manager準拠となりました。
対象OU所属アカウントにおいてSecurityGroupを確認すると、以下の通り8.44.12.64/32
のSSHインバウンドルールが削除されている事が分かります。
SecurityGroupポリシー設定のポイント
自動修復のタイミング
自動修復は、ポリシー作成時、またはポリシー作成後に有効化する事が可能です。
自動修復を無効化している場合、Firewall Manager非準拠のリソースを検出する事が可能となります。
そのため一旦は自動修復は無効化(デフォルト)のままポリシーのみ作成し、Firewall Managerポリシー非準拠のリソースを検出してから、必要に応じて自動修復を有効化するのが良いでしょう。
利用料金
以下のWAFポリシーと同じく、ポリシー1つにつき月額100USD、またリソース変更の監視を記録するAWS Configに対してもそれぞれ料金がかかります。
(SecurityGroup自体には料金はかかりません)
最後に
SecurityGroupルールの内容は非常に多岐に渡るため、下手に必要なルールが削除されないように、WAFポリシーと比較してもSecurityGroupポリシーの自動修復は慎重に行う必要がありそうです。
またFirewall ManagerにおけるSecurityGroupポリシーは、他にも様々な機能があるため、一度何ができるか触ってみると良さそうですね。
以上、つくぼしでした!